package com.hn.gege.im.modules.im.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hn.gege.im.modules.im.entity.ChatMessageUnread;

import java.util.List;

/**
 * <p>
 * 未读聊天消息 服务类
 * </p>
 *
 * @author zxy
 * @since 2021-10-12
 */
public interface IChatMessageUnreadService extends IService<ChatMessageUnread> {

    /**
     * 未读消息添加
     * @param messageUnread
     * @return
     */
    boolean add(ChatMessageUnread messageUnread);

    /**
     * 未读消息移除
     * @param sender 消息发送者
     * @param receiver 消息接收者
     * @return
     */
    boolean remove(String sender, String receiver);

    /**
     * 获取用户和一个人的未读消息
     * @param sender
     * @param receiver
     * @return
     */
    List<ChatMessageUnread> listBySenderAndReceiver(String sender, String receiver);

    /**
     * 分页获取用户和一个人的未读消息列表
     * @param msgId 消息id(时间戳)
     * @param limit
     * @param sender
     * @param receiver
     * @return
     */
    Page<ChatMessageUnread> listPageBySenderAndReceiver(String msgId, Integer limit, String sender, String receiver);

    /**
     * 统计未读消息数量
     * @param sender
     * @param receiver
     * @return
     */
    Integer count(String sender, String receiver);


}
